//
// Created by wkm on 2024-04-21.
//

#ifndef AES128CHIPSYSTEMC_SCHEDULEKEY_MONITOR_H
#define AES128CHIPSYSTEMC_SCHEDULEKEY_MONITOR_H

#include "../core_module/CONSTANT.h"

SC_MODULE(schedulekey_monitor) {

    sc_in<exe_state> m_done, m_can_read;
    sc_in<sc_uint<DATA_SIZE>>
            m_out_key_1, m_out_key_2, m_out_key_3, m_out_key_4,
            m_out_key_5, m_out_key_6, m_out_key_7, m_out_key_8,
            m_out_key_9, m_out_key_10, m_out_key_11, m_out_key_12,
            m_out_key_13, m_out_key_14, m_out_key_15, m_out_key_16;

    void prc_schedulekey_monitor();

    SC_CTOR(schedulekey_monitor) {
        SC_METHOD(prc_schedulekey_monitor);
        sensitive << m_out_key_1 << m_out_key_2 << m_out_key_3 << m_out_key_4 <<
                  m_out_key_5 << m_out_key_6 << m_out_key_7 << m_out_key_8 <<
                  m_out_key_9 << m_out_key_10 << m_out_key_11 << m_out_key_12 <<
                  m_out_key_13 << m_out_key_14 << m_out_key_15 << m_out_key_16;
    }
};

#endif //AES128CHIPSYSTEMC_SCHEDULEKEY_MONITOR_H
